package com.wan37.logic.fighting.hand;

import com.wan37.logic.domain.Result;
import com.wan37.logic.domain.vo.*;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author : luoyong
 * @date : 2020-06-02 16:09
 **/
@Component
public interface Fighting {

    //Start（技能开始）、Cost（消耗处理）、Reading（吟唱）、Channeling（引导）、
    // OnCast（出手）、Project（弹道飞行中）、OnHit（击中）、Finish（技能结束）。

    /**
     * 技能开始检测
     *
     * @param fightingVO
     * @return
     */
    Result start(FightingVO fightingVO);

    /**
     * 消耗处理
     *
     * @param skillVO
     * @param allRoleVO
     * @param allRoleVOList
     * @return
     */
    Result cost(SkillVO skillVO, AllRoleVO allRoleVO, List<AllRoleVO> allRoleVOList);

    /**
     * 结束处理
     *
     * @param skillVO
     * @param allRoleVO
     * @param allRoleVOList
     * @return
     */
    Result finish(SkillVO skillVO, AllRoleVO allRoleVO, List<AllRoleVO> allRoleVOList);
}
